## Интеграционные тесты

В этом задании вам предстоит протестировать уже готовое приложение на Spring Boot – простой менеджер задач. Мы будем писать интеграционные тесты.

### Полезные ссылки

* Объект [MockMvcRequestBuilders](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.html) – в его документации можно найти методы для выполнения различных запросов
* Библиотека [JsonUnit](https://github.com/lukas-krecan/JsonUnit#assertj) и примеры проверки содержимого JSON

### src/test/java/exercise/controller/TaskControllerTest.java

Добавьте необходимы аннотации для тестового класса, чтобы при тестировании не происходили реальные HTTP-вызовы.

Допишите тесты, которые проверят работу следующих маршрутов:

* Просмотр конкретной задачи
* Создание новой задачи
* Обновление существующей задачи
* Удаление задачи

### Подсказки

* Изучите блок импортов, там есть подсказки, какие методы использовать для отправки запросов приложению
* Создание объекта сущности можно вынести в отдельный метод
* Для генерации названия и описания для задачи используйте Faker. Выберите провайдер, который вам нравится. Можно использовать `lorem()`, который генерирует фразы:

    ```java
    faker.lorem().word(); // Генерирует одно слово
    faker.lorem().paragraph(); // Генерирует некоторый текст
    ```

* Для проверки полей JSON вам пригодится матчер `and()` библиотеки JsonUnit. Вот пример из официальной документации:

    ```java
    assertThatJson("{\"test\":{\"a\":1, \"b\":2, \"c\":3}}").and(
        a -> a.node("test.a").isEqualTo(1),
        a -> a.node("test.b").isEqualTo(2)
    );
    ```
